package com.yxx.service;

import com.yxx.medicinecommon.result.PageResult;
import com.yxx.medicinepojo.dto.SetMedicinePageQueryDTO;
import com.yxx.medicinepojo.dto.SetmedicineDTO;
import com.yxx.medicinepojo.entity.SetMedicine;
import com.yxx.medicinepojo.vo.ChineseWesternMedicineDetailListVO;
import com.yxx.medicinepojo.vo.SetmedicineVO;

import java.util.List;

/**
 * @author yuxiangxun
 * @date 2024/9/13
 * @apiNote
 */
public interface SetMedicineService {
    /**
     * 组合药分页查询
     * @param setMedicinePageQueryDTO
     * @return
     */
    PageResult pageQuery(SetMedicinePageQueryDTO setMedicinePageQueryDTO);

    /**
     * 新增组合药
     * @param setmedicineDTO
     */
    void saveSetdicineWithMedicine(SetmedicineDTO setmedicineDTO);

    /**
     * 回显数据，根据组合药id查询组合药信息
     * @param id
     * @return
     */
    SetmedicineVO getById_Setmedicine(Long id);

    /**
     * 修改组合药
     * @param setmedicineDTO
     */
    void update_SetMedicine_Medicine(SetmedicineDTO setmedicineDTO);

    /**
     * 组合药上架下架
     * @param status
     * @param id
     */
    void SetMedicine_Start_Disable(Integer status, Long id);

    /**
     * 批量删除组合药
     * @param ids
     */
    void deleteSetMedicineBatch(List<Long> ids);

    /**
     * 条件查询组合药信息
     * @param setMedicine
     * @return
     */
    List<SetMedicine> list(SetMedicine setMedicine);

    /**
     * 根据中西药id查询药品列表信息
     * @param id
     * @return
     */
    List<ChineseWesternMedicineDetailListVO> chineseWesternMedicineDetailListById(Long id);
}
